using UwinEducation.Domain.Entities;
using UwinEducation.Shared.Models;

namespace UwinEducation.Domain.IRepositories
{
    public interface ICourseRepository : IRepository<Course, Guid>
    {
        /// <summary>
        /// 获取课程分页列表
        /// </summary>
        Task<PagedResult<Course>> GetPagedListAsync(CoursePageRequest pageRequest);

        /// <summary>
        /// 获取课程详情
        /// </summary>
        Task<Course> GetDetailsByIdAsync(Guid id);

        /// <summary>
        /// 检查课程编号是否存在
        /// </summary>
        Task<bool> ExistsByCodeAsync(string code, Guid? excludeId = null);
    }
}
